import java.util.Arrays;

/**
 * 给你一个非空数组，返回此数组中 第三大的数 。如果不存在，则返回数组中最大的数。
 * https://leetcode-cn.com/problems/third-maximum-number/
 */
public class ThreeMax {

    public static int thirdMax(int[] array){
        Arrays.sort(array);
        reversal(array);
        for (int i = 1,j=1; i <array.length ; i++) {
            if(array[i]!=array[i-1]&&++j==3){
                return array[i];
            }
        }
        return array[0];
    }

    public static void reversal(int[] array){
        int left=0;
        int right=array.length-1;
        while (left<right){
            int temp=array[right];
            array[right]=array[left];
            array[left]=temp;
            left++;
            right--;
        }
    }

    public static void main(String[] args) {
        int[] a={1,1,2};
        System.out.println(thirdMax(a));

    }
}
